Certain computer applications, such as dynamic simulations and "twitch" games require time-critical user input and computer response. Twitch games are a class of computer games exemplified by fighting or combat games in which a user controls a character and inputs movement and firing or hitting commands at a high rate. Twitch games are characterized by a high degree of user interaction, and since user input is on the order of seconds or fractions of a second, this input requires immediate registration and response from the computer in order to maintain the playability and realism of the game. Twitch games thus require the user to respond quickly to computer signals, and the computer to quickly respond to user input. Any delay by the computer to the user input would thus result in the improper flow or execution of the game or simulation.
Twitch games are also characterized by the transmission of messages of a small size and of only a few different types. Users of twitch games input commands through a device such as a joystick or keypad. These devices typically allow only a limited number of commands, such as lateral and vertical movement and various punching, kicking and firing commands as required by the games. Because the commands invoke relatively non-complex responses from the computer, the commands can be encoded within messages of a small size. For example, in a typical twitch game the command to fire a gun can be encoded and sent in a command word requiring only 8-bits.
Many computer games and simulation programs were originally written for and executed on single computer consoles such as arcade machines. These machines typically allow for player against computer, or multi-player play through multiple input devices on the console. With the growth of personal computer use and network access, however, many computer games are increasingly being played between players on personal computers over a network or modem link.
Although use of general purpose computer networks for the execution of real-time and time critical applications has increased, these networks are typically ill-suited for such applications because of transmission protocols that introduce an unacceptable degree of network latency. Latency is the minimum time required to transmit a packet through the network devices and lines constituting the network. A primary determinant of the latency of a network is the amount of transmission bandwidth available in each network device. As the complexity of a network and the amount of traffic over a network increases, this bandwidth is consumed and latency correspondingly increases. For many applications, increased latency results in slower transmission which does not jeopardize program execution. However for applications such as twitch games, increased latency could render a game or simulation unplayable.
One approach to playing twitch games over a computer network has been to utilize special low latency networks specifically designed for real-time and time critical applications. This approach has the disadvantage of being expensive and impractical for casual users. A second approach has been to dedicate a general purpose transmission medium to the time-critical application. This method may provide sufficient bandwidth for the application, but typically requires that no other application transmit messages over the network at the same time. This approach thus denies the use of the network to general purpose traffic while a game or simulation is being played.
It is thus desirable to provide a method of executing time-critical computer applications, such as twitch games, over general purpose networks without the network latency associated with such networks. One of the primary general purpose networks gaining widespread use is the Internet. Messages are transmitted over the Internet using the Transmission Control Protocol/Internet Protocol (TCP/IP). The TCP/IP protocol is based on the principle of "best effort" transmission between entities on the network. Messages on the Internet are non-prioritized and implement collision mechanisms in order to reach their destination. Because of the non-deterministic nature of TCP/IP message transmission, the Internet is not well suited to applications requiring time-critical response.
A recent extension to TCP/IP protocol has introduced the concept of reservation of network resources within individual network devices on the Internet as an attempt to facilitate the execution of real-time applications across the Internet. Such resources include memory and buffer space within computers and routers on the network. The reservation of such resources provides adequate network bandwidth for deterministic transmission of application messages which require time-critical response. However, present reservation protocols do not provide priority queuing for small data packets which require extremely low latency transmission but do not require substantial network bandwidth. Therefore, what is further needed is a mechanism for extending resource reservation protocols to accommodate the prioritization of low bandwidth, minimum latency messages of small packet sizes.